When software that has been designed specifically to damage or disrupt a system (e.g., malicious software or “malware”) invades a computer system, the integrity of the computer's operating system, and hence the entire computer system, is greatly compromised. While the security concerns and requirements of computer users range widely, given the rise of virus, worm, and Trojan threats, most computer users are concerned with the integrity of their computers' critical infrastructure components such as operating system processes, memory processes, etc.
Some types of malware use the operating system's privileged operations to attack the computer. Such privileged operations typically consist of instructions or sets of instructions that are accessible only by a privileged user or process. For example, when malware is somehow able to access one or more of these privileged operations, this may result in the deletion or corruption of operating system files, the attack of in-memory operating system components, the deletion of user files, and many other harmful possibilities. In some cases, even non-malicious processes may damage a computer system through inadvertent behavior that accesses privileged operations. More generally, almost any process may be able to obtain access to privileged operations by simply assuming the identity of a privileged user.
Normally, operating systems provide an infrastructure for hosting processes and providing system services to those processes. Operating systems typically provide basic security protections—such as enforcing access control and ownership rights over system resources. For example, in normal operating system environments, protective security services such as host firewall, vulnerability assessment, patch detection, behavioral blocking, host or network intrusion detection, and antivirus technologies are all run as native applications in the operating system. Despite these measures, the operating system is sometimes unable to accurately determine whether it has been attacked. Specifically, once a piece of malicious code or other malware attacks a computer system and gains sufficient control (e.g., administrator-level access), all further attempts by the operating system to determine whether it is under attack are no longer trustworthy because the mechanisms for such attempts may also be corrupted. This is because the malicious code could effectively modify any of the in-memory or on-disk structures used by the operating system or the applications used to protect it.
One approach to protecting a computer system and its operating system involves installing a set of security applications such as antivirus software, personal firewalls, and intrusion detection systems. In systems with multiple computer systems, such as a computer network or a cluster of computer systems deployed in an array, each individual computer system runs its own set of security applications. This is because each computer system in the network or array is a physically separate entity with its own network attachment, its own central processing unit(s), its own instance of an operating system, etc. While such security applications may be installed on each computer system to prevent the computer system and its operating system from being compromised, such security applications may too fail to protect the computer system because, just like any of the other applications running on the computer system, they are also vulnerable to attack.
In another approach to protecting a computer system and its operating system, aspects of the computer system, such as the memory, are protected by isolating aspects of the computer system.